package mx.ipn.pruebas;

import java.util.ArrayList;

import mx.ipn.persistencia.FabricaDeDAOs;
import mx.ipn.persistencia.dao.*;
import mx.ipn.to.*;

public class PruebaDAOs21 {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		FabricaDeDAOs fabricaMySQL = FabricaDeDAOs
				.getFabricaDeDAOs(mx.ipn.Constantes.FABRICA_DAOS_MYSQL);
		short resultado;

		// ***********************************************************************************************
		// DESCUENTOEMPLEADO
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<DESCUENTOEMPLEADO>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			DescuentoEmpleadoDAO descuentoEmpleadoDAO = fabricaMySQL
					.getDescuentoEmpleadoDAO();
			DescuentoEmpleadoTO descuentoEmpleadoTO = new DescuentoEmpleadoTO();
			descuentoEmpleadoTO.setIdDescuento(4);
			descuentoEmpleadoTO.setIdEmpleado(2);

			// insert
/*
			if (descuentoEmpleadoDAO
					.insertDescuentoEmpleado(descuentoEmpleadoTO)) {
				//descuentoEmpleadoDAO.insertDescuentoEmpleado(descuentoEmpleadoTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");
*/
			// actualiza
/*			DescuentoEmpleadoTO descuentoEmpleadoNuevoTO = new DescuentoEmpleadoTO();

			descuentoEmpleadoNuevoTO.setIdEmpleado(1);
			descuentoEmpleadoNuevoTO.setIdDescuento(7);

			resultado = descuentoEmpleadoDAO.updateDescuentoEmpleado(
					descuentoEmpleadoTO, descuentoEmpleadoNuevoTO);
			if (resultado == 1)
				System.out.println("Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");
*/
			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			descuentoEmpleadoTO = descuentoEmpleadoDAO
					.findDescuentoEmpleadoByDescuentoEmpleado(2, 1);
			if (descuentoEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DESCUENTOEMPLEADO");
				ImprimirTO.Imprime(descuentoEmpleadoTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT DESCUENTOEMPLEADO +**");
			java.util.Collection<DescuentoEmpleadoTO> listDescuentoEmpleadoTO = descuentoEmpleadoDAO
					.selectDescuentoEmpleado();
			if (listDescuentoEmpleadoTO != null) {
				for (int i = 0; i < listDescuentoEmpleadoTO.size(); i++) {
					descuentoEmpleadoTO = ((ArrayList<DescuentoEmpleadoTO>) listDescuentoEmpleadoTO)
							.get(i);

					System.out.println("DESCUENTOEMPLEADO");
					ImprimirTO.Imprime(descuentoEmpleadoTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR DESCUENTO");
			descuentoEmpleadoTO = descuentoEmpleadoDAO
					.selectDescuentoEmpleadoByDescuento(1);
			if (descuentoEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DESCUENTOEMPLEADO");

				for (int x = 0; x < descuentoEmpleadoTO.getListEmpleadoTO().length; x++) {
					System.out.println("EMPLEADO");
					ImprimirTO
							.Imprime(descuentoEmpleadoTO.getListEmpleadoTO()[x]);
				}

				for (int x = 0; x < descuentoEmpleadoTO.getListDescuentoTO().length; x++) {
					System.out.println("DESCUENTO");
					ImprimirTO
							.Imprime(descuentoEmpleadoTO.getListDescuentoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR EMPLEADO");
			descuentoEmpleadoTO = descuentoEmpleadoDAO
					.selectDescuentoEmpleadoByEmpleado(1);
			if (descuentoEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("DESCUENTOEMPLEADO");

				for (int x = 0; x < descuentoEmpleadoTO.getListDescuentoTO().length; x++) {
					System.out.println("DESCUENTO");
					ImprimirTO
							.Imprime(descuentoEmpleadoTO.getListDescuentoTO()[x]);
				}

				for (int x = 0; x < descuentoEmpleadoTO.getListEmpleadoTO().length; x++) {
					System.out.println("EMPLEADO");
					ImprimirTO
							.Imprime(descuentoEmpleadoTO.getListEmpleadoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

		}

		catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}
		
		
		// ***********************************************************************************************
		// PERCEPCIONEMPLEADO
		System.out
				.println("<<<<<<<<<<<<<<<<<<<<<<<<<PERCEPCIONEMPLEADO>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>");
		try {

			PercepcionEmpleadoDAO percepcionEmpleadoDAO = fabricaMySQL
					.getPercepcionEmpleadoDAO();
			PercepcionEmpleadoTO percepcionEmpleadoTO = new PercepcionEmpleadoTO();
			percepcionEmpleadoTO.setIdPercepcion(1);
			percepcionEmpleadoTO.setIdEmpleado(3);

			// insert

			if (percepcionEmpleadoDAO
					.insertPercepcionEmpleado(percepcionEmpleadoTO)) {
				//percepcionEmpleadoDAO.insertPercepcionEmpleado(percepcionEmpleadoTO);
				System.out
						.println("+++++++++++++++++++ Insertado correctamente");
			} else
				System.out.println("Falla en la insercion");

			// actualiza
			PercepcionEmpleadoTO percepcionEmpleadoNuevoTO = new PercepcionEmpleadoTO();

			percepcionEmpleadoNuevoTO.setIdEmpleado(1);
			percepcionEmpleadoNuevoTO.setIdPercepcion(7);

			resultado = percepcionEmpleadoDAO.updatePercepcionEmpleado(
					percepcionEmpleadoTO, percepcionEmpleadoNuevoTO);
			if (resultado == 1)
				System.out.println("Actualizado correctamente");
			else if (resultado == 0)
				System.out.println("Falla en la actualizacion");
			else if (resultado == -1)
				System.out.println("Ocurrio una excepcion");

			// Busca
			System.out.println("------------------------- BUSQUEDA POR ID");
			percepcionEmpleadoTO = percepcionEmpleadoDAO
					.findPercepcionEmpleadoByPercepcionEmpleado(7, 1);
			if (percepcionEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("PERCEPCIONEMPLEADO");
				ImprimirTO.Imprime(percepcionEmpleadoTO);

			} else {
				System.out.println("Falla en la seleccion");
			}

			// busqueda multiple
			System.out
					.println("**++++++++++++++++++++++ SELECT PERCEPCIONEMPLEADO +**");
			java.util.Collection<PercepcionEmpleadoTO> listPercepcionEmpleadoTO = percepcionEmpleadoDAO
					.selectPercepcionEmpleado();
			if (listPercepcionEmpleadoTO != null) {
				for (int i = 0; i < listPercepcionEmpleadoTO.size(); i++) {
					percepcionEmpleadoTO = ((ArrayList<PercepcionEmpleadoTO>) listPercepcionEmpleadoTO)
							.get(i);

					System.out.println("PERCEPCIONEMPLEADO");
					ImprimirTO.Imprime(percepcionEmpleadoTO);
				}
			} else {
				System.out.println("No hubo resultados en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR PERCEPCION");
			percepcionEmpleadoTO = percepcionEmpleadoDAO
					.selectPercepcionEmpleadoByPercepcion(1);
			if (percepcionEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("PERCEPCIONEMPLEADO");

				for (int x = 0; x < percepcionEmpleadoTO.getListEmpleadoTO().length; x++) {
					System.out.println("EMPLEADO");
					ImprimirTO
							.Imprime(percepcionEmpleadoTO.getListEmpleadoTO()[x]);
				}

				for (int x = 0; x < percepcionEmpleadoTO.getListPercepcionTO().length; x++) {
					System.out.println("PERCEPCION");
					ImprimirTO
							.Imprime(percepcionEmpleadoTO.getListPercepcionTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

			// Busca
			System.out.println("------------------- BUSQUEDA POR EMPLEADO");
			percepcionEmpleadoTO = percepcionEmpleadoDAO
					.selectPercepcionEmpleadoByEmpleado(1);
			if (percepcionEmpleadoTO != null) {
				System.out.println("Busqueda exitosa");

				System.out.println("PERCEPCIONEMPLEADO");

				for (int x = 0; x < percepcionEmpleadoTO.getListPercepcionTO().length; x++) {
					System.out.println("PERCEPCION");
					ImprimirTO
							.Imprime(percepcionEmpleadoTO.getListPercepcionTO()[x]);
				}

				for (int x = 0; x < percepcionEmpleadoTO.getListEmpleadoTO().length; x++) {
					System.out.println("EMPLEADO");
					ImprimirTO
							.Imprime(percepcionEmpleadoTO.getListEmpleadoTO()[x]);
				}

			} else {
				System.out.println("Falla en la seleccion");
			}

		}

		catch (Exception e) {
			System.out.println("Ocurrio una excepcion");
		}

	}

}
